Software programs running on a computer can be perfectly reproduced in an infinite number of copies. This is a major concern for publishers of the programs wishing to protect their intellectual property rights; as a matter of fact, the publishers typically receive a royalty for a licensed use of each program, so that any unaccounted use or distribution of the program results in an unpaid royalty. The problem has been exacerbated in the last years by the widespread diffusion of the INTERNET, which further facilitates the uncontrolled distribution of this kind of products.
The most straightforward way of avoiding unaccounted usage of the programs is that of preventing unauthorized copying and transmission. For example, most programs embed control code that limits the number of copies that can be made or disables operation of the programs after a predetermined period of time has lapsed. Another technique consists of requiring possession of a software or hardware key for running the programs.
A different solution proposed in the art is that of installing a licensing management system on the computer, which system controls compliance of the programs running on the computer with respective conditions of use authorised by the publisher (for example defining the maximum computational power of the computer on which the program can run). More specifically, the authorised conditions of use for each program (translated into machine-readable form) are embedded into a digital license certificate. The program includes a call to the licensing management system, so that each time an end-user requires execution of the program a corresponding request is transferred to the licensing management system. The licensing management system verifies whether the running of the program falls within the limits set out by the authorised conditions of use embedded in the license certificate; the licensing management system enables or prevents execution of the program according to the result of the verification.
However, the solution described above is not completely satisfactory. Particularly, running of the licensing management system requires the full function of an operating system and other programs providing basic services for the computer. Therefore, each time the computer is switched on a bootstrap process is at first executed, during which the basic programs are loaded. Once the bootstrap has been completed, providing a software platform on top of which other programs can run, the licensing management system can be started.
As a consequence, all the basic programs that are loaded during the bootstrap process (such as the operating system itself, a network stack, and the like) cannot be monitored by the licensing management system. This prevents carrying out a full control of the programs running on the computer. The aforementioned drawback is particularly critical, since the programs escaping the control are generally of a great worth. Therefore, the economic lost suffered by the publishers of the programs may be considerable.
It is an object of the present invention to overcome the above-mentioned drawbacks. In order to achieve this object, a method as set out in claims 1 and 10 is proposed.